Cookie/Session的區別:Cookie 是透過客戶端紀錄訊息確定使用者身份Session 是透過在伺服器端紀錄訊息確定使用者身份
Session 物件用於在使用者訪問網站時維護會話資訊。Session 物件,並將其與該使用者相關聯。Session 物件會存儲有關使用者的信息,比如使用者的身份識別和設置。HTTP 協議的無狀態性,伺服器不會知道使用者是誰以及他們在網站上的活動。ASP 通過為每個使用者創建一個唯一的 cookie 來解決這個問題,該 cookie 包含用戶的身份信息。Session物件中的變量僅保存一個單獨用戶的信息,而不是所有用戶的信息。Session 物件中的變量在整個應用程式中的所有頁面都是可用的,因此可以在不同頁面間共享信息。Session 物件,並在會話過期時銷毀該 Session 物件。總結來說,Session 物件是 ASP 中一個重要的功能,用於維護用戶會話的狀態信息,從而實現用戶在網站上的個性化體驗和功能。
Global.asafile包含Session_OnStart
Session的變數當中<object>標記實例化具有session範圍的對象下面內容是腦補來的,參考看看...至於對不對還請指教
Global.asafileSub Session_OnStart
    在Session開始時執行的程式碼
End Sub
Session的變數<%
Session("username") = "John"
%>
<object>標記<object id="MySessionObject" runat="Server" scope="Session" ProgID="MyApp.MyClass"></object>
如果使用者在指定時間內未要求或重新整理應用程式中的頁面,則會話結束。
這就好像你今天登入了某個要登入帳號密碼的網站,結果你掛在上面太久,再次切到那個網頁的時候
原本登入的狀態已經變為登出,顯示的畫面是登入的畫面。
在ASP中預設的時間是二十分鐘,然而如果要調整這個時間的話則要參考下方的程式碼Session.Timeout方法
<%
Session.Timeout=5
%>
如果要立即結束的話則是...Session.Abandon方法,但我不知道實務上這個方法的概念是如何應用
我猜會不會就像ChatGPT 4.0需要付費的一樣,雖然我們已經登入開始使用,但是僅限免費的3.5版本
如果你切換到4.0版本,則立即停止你做任何使用,並顯示相關的欄位視窗要你購買升級,我猜而已...
<%
Session.Abandon
%>
<%
Session("username")="Donald Duck"
Session("age")=50
%>
此程式碼中創建了兩個Session變數,分別為username及age,用來儲存使用者的姓名和年齡
而當值已經被存入之後,我們就可以在任何的頁面獲取到
Welcome <%Response.Write(Session("username"))%>
並且也可以依據使用者的偏好,來返回對應頁面
<%If Session("screenres")="low" Then%>
  This is the text version of the page
<%Else%>
  This is the multimedia version of the page
<%End If%>
像這段範例就表示使用者的螢幕解析度如果比較低的話,就給予文字版的網頁(概念上是這樣)
Contents這個集合包含了所有的Session變數
因此我們可以使用當中Remove的方法
<%
If Session.Contents("age")<18 then
  Session.Contents.Remove("sale")
End If
%>
如果Session變數「age」的值低於 18,下面的範例將刪除Session變數「sale」
感覺是在表示如果這個人還未成年,就不販賣...
此外,也有移除全部Session變數的用法
<%
Session.Contents.RemoveAll()
%>
<%
Session("username")="Donald Duck"
Session("age")=50
dim i
For Each i in Session.Contents
  Response.Write(i & "<br>")
Next
%>
一樣會用到Contents這個集合
<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
  Response.Write(Session.Contents(i) & "<br>")
Next
%>
另外還可以透過Session.Contents.Count這個方法得到Contents集合中有幾個Session變數
在迴圈進行後,Session.Contents(i)得到的是變數的值
前面的Session.Contents則是得到變數名稱
如果是StaticObjects這個集合的話,則可以透過下方的程式碼來直接列印出當中的值
<%
dim i
For Each i in Session.StaticObjects
  Response.Write(i & "<br>")
Next
%>